﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ImapactTenis;

namespace _3___Apresentação_Windows
{
    public partial class Vendedores : Form
    {
        public Vendedores()
        {
            InitializeComponent();

            var cores = new Estoquista().CarregaCores();
            foreach (var cor in cores)
            {
                cbCor.Items.Add(cor.Id + " - " + cor.Descricao);
            }

            var tamanhos = new Estoquista().CarregaTamanhos();
            foreach (var tamanho in tamanhos)
            {
                cbTamanho.Items.Add(tamanho.Id + " - " + tamanho.Descricao);
            }

            var marcas = new Estoquista().CarregaMarcas();
            foreach (var marca in marcas)
            {
                cbMarca.Items.Add(marca.Id + " - " + marca.Nome);
            }
        }

        private void btnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                int cor = Convert.ToInt32(cbCor.Text.Split('-').First().Trim());
                int tamanho = Convert.ToInt32(cbTamanho.Text.Split('-').First().Trim());
                int marca = Convert.ToInt32(cbMarca.Text.Split('-').First().Trim());

                var produto = new Vendedor().BuscaProdutos(cor, tamanho, marca);

                if (produto.Count < 1)
                {
                    MessageBox.Show("Nenhum produto encontrado");
                    return;
                }

                dtConsulta.DataSource = ToDataTable(produto);
                dtConsulta.Visible = true;
            }
            catch
            {
                MessageBox.Show("Não foi possível realizar a busca. Preencha todos os campos");
            }
            
        }

        private DataTable ToDataTable(List<Produto> produtos)
        {
            DataTable returnTable = new DataTable("Produtos");
            returnTable.Columns.Add(new DataColumn("Modelo"));
            returnTable.Columns.Add(new DataColumn("Preços"));
            returnTable.Columns.Add(new DataColumn("Local de Estoque"));
            returnTable.Columns.Add(new DataColumn("Status Estoque"));

            foreach (var produto in produtos)
            {
                returnTable.AcceptChanges();
                DataRow row = returnTable.NewRow();
                row[0] = produto.Modelo;
                row[1] = produto.Preco;
                row[2] = produto.Estoque;
                row[3] = produto.statusEstoque;

                returnTable.Rows.Add(row);
            }
            return returnTable;
        }

        private void btnNovaConsulta_Click(object sender, EventArgs e)
        {
            new FormHelper().RecursiveClearTextBoxes(this.Controls);
            dtConsulta.DataSource = null;
        }
    }
}
